<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>wdttb: xwdttb_winwdt_intr_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">wdttb
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xwdttb__winwdt__intr__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xwdttb_winwdt_intr_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains a design example using the TimeBase Watchdog Timer Device (WdtTb) driver and hardware device using interrupt mode (for the WDT interrupt). </p>
<p>This file contains an example that demonstrates Q&amp;A functionality of the Window Watchdog.</p>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>This example assumes that the reset output of the WdtTb device is not connected to the reset of the processor. This example will not return if the interrupts are not working.</p>
<p>MODIFICATION HISTORY:</p>
<pre>
Ver   Who  Date     Changes
</p>
<hr/>
<p>
4.0   sha  02/04/16 First release
5.0     sne  03/26/20 Updated example to support versal platform.
5.7     sb   06/27/23 Correct the interrupt ID for Versal-net platform.
5.7     sb   07/12/23 Added support for system device-tree flow.
5.9     ht   07/22/24 Add support for peripheral tests in SDT flow
</pre><dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>This example assumes that the reset output of the WdtTb device is not connected to the reset of the processor. This example will not return if the interrupts are not working.</p>
<p>MODIFICATION HISTORY:</p>
<pre>
Ver   Who  Date     Changes
</p>
<hr/>
<p>
5.6   asa  01/13/23 First release of Q&amp;A mode example.
5.7   sb   06/27/23 Correct the interrupt ID for Versal-net platform.
5.7   sb   07/12/23 Added support for system device-tree flow.</pre><pre></pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:abcca4fac23cabb6f0a7a684a08c3a90a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__winwdt__intr__example_8c.html#abcca4fac23cabb6f0a7a684a08c3a90a">WIN_WDT_SW_COUNT</a>&#160;&#160;&#160;0xF00000</td></tr>
<tr class="memdesc:abcca4fac23cabb6f0a7a684a08c3a90a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of clock cycles for second window.  <a href="#abcca4fac23cabb6f0a7a684a08c3a90a">More...</a><br/></td></tr>
<tr class="separator:abcca4fac23cabb6f0a7a684a08c3a90a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4beb8b18f7cc956dae726959908860"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__winwdt__intr__example_8c.html#a7c4beb8b18f7cc956dae726959908860">WIN_WDT_SBC_COUNT</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:a7c4beb8b18f7cc956dae726959908860"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selected byte count.  <a href="#a7c4beb8b18f7cc956dae726959908860">More...</a><br/></td></tr>
<tr class="separator:a7c4beb8b18f7cc956dae726959908860"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb3630794e82059b27032e5116b5a66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__winwdt__intr__example_8c.html#a5cb3630794e82059b27032e5116b5a66">WIN_WDT_BSS_COUNT</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:a5cb3630794e82059b27032e5116b5a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Byte segment selected.  <a href="#a5cb3630794e82059b27032e5116b5a66">More...</a><br/></td></tr>
<tr class="separator:a5cb3630794e82059b27032e5116b5a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa43943c9b03a9151cd7db481977ab983"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__winwdt__intr__example_8c.html#aa43943c9b03a9151cd7db481977ab983">WinWdtIntrExample</a> (INTC *IntcInstancePtr, <a class="el" href="struct_x_wdt_tb.html">XWdtTb</a> *WdtTbInstancePtr, u16 WdtTbDeviceId, u16 WdtTbIntrId)</td></tr>
<tr class="memdesc:aa43943c9b03a9151cd7db481977ab983"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests the functioning of the Window Watchdog Timer in the interrupt mode.  <a href="#aa43943c9b03a9151cd7db481977ab983">More...</a><br/></td></tr>
<tr class="separator:aa43943c9b03a9151cd7db481977ab983"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xwdttb__winwdt__intr__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memdesc:a840291bc02cba5474a4cb46a9b9566fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function to call the WdtTb interrupt example.  <a href="#a840291bc02cba5474a4cb46a9b9566fe">More...</a><br/></td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a5cb3630794e82059b27032e5116b5a66"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WIN_WDT_BSS_COUNT&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Byte segment selected. </p>

<p>Referenced by <a class="el" href="xwdttb__winwdt__intr__example_8c.html#aa43943c9b03a9151cd7db481977ab983">WinWdtIntrExample()</a>.</p>

</div>
</div>
<a class="anchor" id="a7c4beb8b18f7cc956dae726959908860"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WIN_WDT_SBC_COUNT&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selected byte count. </p>

<p>Referenced by <a class="el" href="xwdttb__winwdt__intr__example_8c.html#aa43943c9b03a9151cd7db481977ab983">WinWdtIntrExample()</a>.</p>

</div>
</div>
<a class="anchor" id="abcca4fac23cabb6f0a7a684a08c3a90a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WIN_WDT_SW_COUNT&#160;&#160;&#160;0xF00000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of clock cycles for second window. </p>

<p>Referenced by <a class="el" href="xwdttb__winwdt__intr__example_8c.html#aa43943c9b03a9151cd7db481977ab983">WinWdtIntrExample()</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a840291bc02cba5474a4cb46a9b9566fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main function to call the WdtTb interrupt example. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if successful</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xwdttb__winwdt__intr__example_8c.html#aa43943c9b03a9151cd7db481977ab983">WinWdtIntrExample()</a>.</p>

</div>
</div>
<a class="anchor" id="aa43943c9b03a9151cd7db481977ab983"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int WinWdtIntrExample </td>
          <td>(</td>
          <td class="paramtype">INTC *&#160;</td>
          <td class="paramname"><em>IntcInstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_x_wdt_tb.html">XWdtTb</a> *&#160;</td>
          <td class="paramname"><em>WdtTbInstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>WdtTbDeviceId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>WdtTbIntrId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function tests the functioning of the Window Watchdog Timer in the interrupt mode. </p>
<p>This function waits for interrupt programmed point in second window. If the interrupt has occurred, interrupt handler sets a flag and restarts the timer. This function then clears the interrupt, flag and waits for second interrupt to occur and continue waiting for second interrupt as mentioned above.</p>
<p>This function assumes that the reset output of the Window Watchdog Timer is not connected to the reset of the processor. The function allows the Window Watchdog Timer to timeout such that a reset will occur if it is connected.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IntcInstancePtr</td><td>is a pointer to the instance of the INTC driver. </td></tr>
    <tr><td class="paramname">WdtTbInstancePtr</td><td>is a pointer to the instance of WdtTb driver. </td></tr>
    <tr><td class="paramname">WdtTbDeviceId</td><td>is the Device ID of the WdtTb Device and is typically XPAR_&lt;WDTTB_instance&gt;_DEVICE_ID value from xparameters.h. </td></tr>
    <tr><td class="paramname">WdtTbIntrId</td><td>is the Interrupt Id of the WatchDog and is typically XPAR_&lt;INTC_instance&gt;_&lt;WDTTB_instance&gt;_WDT_ INTERRUPT_VEC_ID value from xparameters.h.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if interrupt example run successfully.</li>
<li>XST_FAILURE, if reset has occurred.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_wdt_tb___config.html#a3867e6f3038fe367e0072a85125f5391">XWdtTb_Config::BaseAddr</a>, <a class="el" href="struct_x_wdt_tb.html#a9841f60870d97e7bc296dd419c75023f">XWdtTb::Config</a>, <a class="el" href="struct_x_wdt_tb___config.html#a65e0fbb18c9d9e5ed66403c08378af72">XWdtTb_Config::IsPl</a>, <a class="el" href="xwdttb__winwdt__intr__example_8c.html#a5cb3630794e82059b27032e5116b5a66">WIN_WDT_BSS_COUNT</a>, <a class="el" href="xwdttb__winwdt__intr__example_8c.html#a7c4beb8b18f7cc956dae726959908860">WIN_WDT_SBC_COUNT</a>, <a class="el" href="xwdttb__winwdt__intr__example_8c.html#abcca4fac23cabb6f0a7a684a08c3a90a">WIN_WDT_SW_COUNT</a>, <a class="el" href="group__wdttb__api.html#gadf3c428b985d77e28b5df5cd5d82dff3">XWdtTb_CfgInitialize()</a>, <a class="el" href="group__wdttb__api.html#ga3ec7a898566961227074db888ab4e222">XWdtTb_DisableFailCounter()</a>, <a class="el" href="group__wdttb__api.html#ga12faff17b943f0cbf70a6d639280a630">XWdtTb_DisablePsm()</a>, <a class="el" href="group__wdttb__api.html#ga3fbc0d643f910953abf6e476cf13c5e8">XWdtTb_DisableSst()</a>, <a class="el" href="group__wdttb__api.html#gaf2b1b1175aac0974fa1c9c1c7c50550c">XWdtTb_IntrClear()</a>, <a class="el" href="group__wdttb__api.html#gaee07fe98efd02a8c9a21aeb15b968dc3">XWdtTb_LookupConfig()</a>, <a class="el" href="group__wdttb__api.html#gga6ce266ea00535f8b8c9594d2e1f0e630a46d6c3798d61cc4e49a0d5a117c2c44c">XWDTTB_NO_BAD_EVENT</a>, <a class="el" href="group__wdttb__api.html#gaf1baa5a1d69ac6c61ecc62d5df1a0c01">XWdtTb_RestartWdt()</a>, <a class="el" href="group__wdttb__api.html#gaa9e410506154d92a551b6261742d98b1">XWdtTb_SelfTest()</a>, <a class="el" href="group__wdttb__api.html#gaa1e121c7e6b69d7b10fedf92d91b5396">XWdtTb_SetByteCount()</a>, <a class="el" href="group__wdttb__api.html#ga26519cefd97128dca8d1f147f5364945">XWdtTb_SetByteSegment()</a>, <a class="el" href="group__wdttb__api.html#ga924185ce28862e06ea62fa4f51bfed8d">XWdtTb_SetWindowCount()</a>, <a class="el" href="group__wdttb__api.html#gaab195e280eca1e2985509d954c2e4e52">XWdtTb_Start()</a>, <a class="el" href="group__wdttb__api.html#gacd5617bce061deaa57743ea46008daf8">XWdtTb_Stop()</a>, and <a class="el" href="xwdttb__hw_8h.html#a812114b38de6dd94691113164c16bf26">XWT_WWDT</a>.</p>

<p>Referenced by <a class="el" href="xwdttb__winwdt__intr__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
